language: cpp

dist: trusty

sudo: false

cache: ccache

matrix:
  include:
    - env: STATIC_CHECKS=yes
      os: linux
      compiler: clang
    - env: GODOT_TARGET=x11 TOOLS=yes
      os: linux
      compiler: gcc
    - env: GODOT_TARGET=x11 TOOLS=no
      os: linux
      compiler: clang
    #- env: GODOT_TARGET=windows TOOLS=yes
    #  os: linux
    #  compiler: gcc
    - env: GODOT_TARGET=osx TOOLS=yes
      os: osx
      compiler: clang
    #- env: GODOT_TARGET=android TOOLS=no
    #  os: osx
    #  compiler: clang
    #- env: GODOT_TARGET=iphone TOOLS=no
    #  os: osx
    #  compiler: clang

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
      - llvm-toolchain-trusty-3.9
    packages:
      - build-essential
      - scons
      - pkg-config
      - libx11-dev
      - libxcursor-dev
      - libasound2-dev
      - libfreetype6-dev
      - libgl1-mesa-dev
      - libglu1-mesa-dev
      - libssl-dev
      - libxinerama-dev
      - libxrandr-dev

      # For cross-compiling to Windows.
      #- binutils-mingw-w64-i686
      #- binutils-mingw-w64-x86-64
      #- gcc-mingw-w64-i686
      #- gcc-mingw-w64-x86-64
      #- g++-mingw-w64-i686
      #- g++-mingw-w64-x86-64
      #- mingw-w64

      # For style checks.
      - clang-format-3.9

before_script:
  - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
      brew update; brew install scons ccache;
      export PATH="/usr/local/opt/ccache/libexec:$PATH";
    fi
  - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$GODOT_TARGET" = "android" ]; then
      brew update; brew install -v android-sdk;
      brew install -v android-ndk | grep -v "inflating:" | grep -v "creating:";
      export ANDROID_HOME=/usr/local/opt/android-sdk; export ANDROID_NDK_ROOT=/usr/local/opt/android-ndk;
    fi

script:
  - if [ "$STATIC_CHECKS" = "yes" ]; then
      sh ./misc/travis/clang-format.sh;
    else
      scons -j2 CC=$CC CXX=$CXX platform=$GODOT_TARGET TOOLS=$TOOLS verbose=yes progress=no;
    fi
